package controllers;
import java.util.logging.*;
import play.mvc.*;
import play.data.validation.Required;
import play.libs.Crypto;
import models.*;
import java.net.URLDecoder;
import java.io.UnsupportedEncodingException;
import play.*;
import java.text.Normalizer;
import java.util.regex.Pattern;
public class BaseController extends Controller {
@Before
public static void getDomain(){
String domain = request.domain;
String domainName = Play.configuration.getProperty(domain + ".name");
String domainHref = Play.configuration.getProperty(domain + ".href");
renderArgs.put("domainName", domainName);
renderArgs.put("domainHref", domainHref);
}
//TODO LDAP refactoring
public static boolean userExists(String login) {
//verify that the user doesn't exist yet
Ldap adminConnection = new Ldap();
adminConnection.SetEnv(Play.configuration.getProperty("ldap.host"),Play.configuration.getProperty("ldap.admin.dn"), Play.configuration.getProperty("ldap.admin.password"));
if(adminConnection.getUserInfo(adminConnection.getLdapEnv(),login)!=null){return true;}
else{return false;}
}
public static String normalize(String firstname, String surname) {
return normalize(firstname)+'.'+normalize(surname);
}
protected static String normalize(String original){
// to lower case
String str = original.toLowerCase();
// replace multiple spaces with one space
str = str.replaceAll(" +"," ");
// drop initial or final spaces
str = str.trim();
// normalize and remove accents (diacritics)
str = java.text.Normalizer.normalize(str, java.text.Normalizer.Form.NFD).replaceAll("\\p{InCombiningDiacriticalMarks}+","");
// replace some separators with underscore
str = str.replaceAll("[- .']","_");
// keep only alphanumeric characters and underscores
str = str.replaceAll("[^(_|a-z|0-9)]","");
return str;
}
}